package Demo;

public class Demo03 {
    public static void main(String[] args) {
        /**
         * this：是一个关键字，是一个引用，保存内存地址指向自身
         * this：代表当前对象
         * this使用范围：可以使用在实例方法中，也可以使用在构造方法中，不能使用在静态方法中。
         * this两种用法：this. this();
         * this大部分情况下可以省略，但在区分实例变量和局部变量时不能省略
         * this()这种语法只能出现在构造方法的第一行，表示当前构造方法调用本类的其他构造方法，目的是代码复用。
         *
         * super：是一个关键字  代表父类
         * super使用范围：能出现在实例方法、构造方法中，不能使用在静态方法中。
         * super的语法：super. super（）
         * super：大部分情况下可以省略，但在父类和子类有同名的属性，或方法时，想在子类中访问父类的属性
         * 		 方法时，super.不能省略
         * super() 只能出现在构造方法第一行，通过当前的构造方法去调用“父类”中的构造方法，
         * 目的是：创建子类对象时，先初始化父类的特征。
         *
         */


        Other other = new Other("秦浩然",26);


        Other other1 = new Other();

        System.out.println(other1.toString());

        System.out.println();
    }

}


class Other{
    private String name;
    private int age;

    public Other() {
        super();
    }

    public Other(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void eat(){
        System.out.println("吃");
    }

    @Override
    public String toString() {
        return "Other [name=" + name + ", age=" + age + "]";
    }
}
